package com.itbaizhan;

import java.util.Arrays;

//冒泡算法
public class BubbleSortTest {
    public static void main(String[] args) {
        int[] temp = {5,4,2,1,8,6,0,9,7,3};
        System.out.println("原来顺序:"+Arrays.toString(temp));//数组的打印要用 Arrays.toString
       // bubbleSort02(temp);
         bubbleSort03(temp);
    }

    public static void bubbleSort02(int[] temp){ //在括号里写上形参，调用上个方法的参数
        int x;
        for(int i=0;i<temp.length;i++){
            for(int j=0;j<temp.length-1-i;j++){ //里面每两个数作比较，已经比较了不用再循环-i
                if(temp[j]>temp[j+1]){
                    x = temp[j];
                    temp[j] = temp[j+1];
                    temp[j+1] = x;

                }
            }
            System.out.println("第"+(i+1)+"次："+Arrays.toString(temp));
        }
    }
    public static void bubbleSort03(int[] temp){
        int m;
        for(int i=0;i<temp.length;i++){
            boolean boo = true;
            for(int j=0;j<temp.length-1-i;j++){  //注意这里是-1-i,不是-j
                if (temp[j] > temp[j+1]) {
                    m = temp[j];
                    temp[j] = temp[j+1];
                    temp[j+1] = m;
                    //本趟发生了交换，表明该数组在本趟处于无序状态，需要继续比较
                    boo = false;
                }
            }
            if(boo){
                break;
            }
            System.out.println("第"+(i+1)+"次："+Arrays.toString(temp));
        }
    }
}
